// import axios from "axios";
// import { Message, Notification } from "element-ui";
//
// axios.defaults.headers["X-Requested-With"] = "XMLHttpRequest";
// axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
// let service = axios.create({
//     // baseURL: '/',
//     timeout: 10000,
// });
// service.interceptors.request.use(
//     config => {
//         if(config.method==='post'){
//             config.headers['Content-Type']='application/x-www-form-urlencoded'
//         }
//         return config;
//     },
//     error => {
//         return Promise.reject(error);
//     }
// );
// // 响应拦截 对响应消息作初步的处理
// service.interceptors.response.use(
//     resp => {
//         if (resp.data) {
//             if (resp.data.code !== "000000") {
//                 Message({
//                     type: "error",
//                     message: resp.data.message,
//                     duration: 5000
//                 });
//             }
//             return {
//                 code: resp.data.code,
//                 data: resp.data.data,
//                 msg: resp.data.message
//             };
//         } else {
//             return resp;
//         }
//     },
//     error => {
//         if (error.response) {
//             switch (error.response.states) {
//                 case 400: {
//                     if (
//                         error.response &&
//                         error.response.data &&
//                         error.response.data.message
//                     ) {
//                         Notification.error({
//                             title: "400错误",
//                             message: error.response.data.message,
//                             duration: 5000,
//                             closable: true
//                         });
//                     }
//                     break;
//                 }
//
//             }
//         }
//         Notification.error({
//             title: "错误",
//             message: error,
//             duration: 5000,
//             closable: true
//         });
//         return Promise.reject(error)
//     }
// );
//
// export default service;



import axios from 'axios'
axios.create({
    baseURL: 'http://localhost:8093'
    // 单个环境
    // baseURL: process.env.NODE_ENV === 'production'
    //     ? process.env.BASE_URL : 'http://localhost:3000',
    // 如果有test等多个环境变量，那么是这么写
    // baseURL: (process.env.NODE_ENV === 'production'
    //     || process.env.NODE_ENV === 'test')
    //     ? process.env.BASE_URL : 'http://localhost:3000',
})



// axios.defaults.baseURL = process.env.BASE_URL
// post请求头，影响不大，可写可不写
axios.defaults.headers.post['Content-Type'] =
    'application/x-www-form-urlencoded;charset=UTF-8'
// 请求拦截器
axios.interceptors.request.use(async config => {
    // 根据自己项目配置请求头token，需要与后端配合名字
    // if (store.getters.token) {
    //   config.headers['token'] = getToken()
    // }
    return config;
},error => {
    console.log(error)
    return Promise.reject(error);
});

// 响应拦截器
axios.interceptors.response.use(response => {
        // 这里可以根据浏览器返回的status状态码去判断
        // 这里只举例了200的情况
        if (response.status === 200) {
            return response
        } else {
            return Promise.reject(response)
        }
    },
    error => {
        console.log('err' + error);
        // 根据接口返回的去提示对应的
        // Message({
        //   message: error.response.data.error,
        //   type: 'error',
        //   duration: 5 * 1000
        // })
        // 我这里10030是token失效，其他的根据后端接口返回去写判断
        // if (error.response.data.status === 10030) {
        //   removeToken() 这是我封装的token方法，不需要复制
        // 跳转到登录页
        //   window.location.href = `/login`
        // }
        return Promise.reject(error)
    })
/**
 * 封装get方法，对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export const get = (url, params) => {
    return new Promise((resolve, reject) => {
        axios
            .get(url, {
                params: params
            })
            .then(res => {
                resolve(res.data)
            })
            .catch(function (error) {
                if (error.response) {
                    reject(error.response.data)
                }
            });
    })
}

/**
 * post方法，对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export const post = (url, params) => {
    return new Promise((resolve, reject) => {
        axios
            .post(url, params)
            .then(res => {
                resolve(res.data)
            })
            .catch(function (error) {
                if (error.response) {
                    reject(error.response.data)
                }
            });
    })
}
// delete，put等方法同理，这里只举例最常见的get和post请求
